ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) এর মডিউল ডেভেলপমেন্ট একটি গুরুত্বপূর্ণ দিক, যা ব্যবহারকারীদের ই-কমার্স সাইটে নতুন কার্যকারিতা যোগ করার সুযোগ প্রদান করে। Magento মডিউল হলো একটি স্বাধীন ইউনিট যা একটি নির্দিষ্ট কাজ বা ফিচার সম্পাদন করে। এটি এক বা একাধিক ফাইলের মাধ্যমে কাজ করে এবং আপনি বিভিন্ন ধরনের ফিচার এবং কাজের জন্য মডিউল তৈরি করতে পারেন, যেমন পেমেন্ট গেটওয়ে, শিপিং মেথড, কাস্টম পণ্য ফিল্ড, অথবা নতুন API ইন্টিগ্রেশন।
এখানে, আমরা Magento মডিউল ডেভেলপমেন্টের প্রক্রিয়া এবং এর উপাদানগুলো নিয়ে বিস্তারিত আলোচনা করব।
Magento মডিউল হলো একটি প্যাকেজ যা নির্দিষ্ট ফিচার এবং কার্যকারিতা সরবরাহ করে। মডিউল ডেভেলপমেন্টের মাধ্যমে আপনি আপনার ই-কমার্স সাইটে নতুন সিস্টেম কার্যকারিতা যুক্ত করতে পারেন, যা Magento এর মূল কোর ফাংশনালিটি এক্সটেন্ড বা কাস্টমাইজ করে।
Magento 2.x এর মডিউল ডেভেলপমেন্ট সাধারণত PHP, XML, এবং PHTML ফাইলের সমন্বয়ে কাজ করে।
Magento মডিউল তৈরি করার প্রথম পদক্ষেপ হল একটি নির্দিষ্ট ডিরেক্টরি তৈরি করা। সাধারণত মডিউলটি app/code/[Vendor]/[ModuleName]
ডিরেক্টরিতে তৈরি হয়।
app/code
├── [Vendor]
│ └── [ModuleName]
│ ├── Controller/
│ ├── etc/
│ ├── Model/
│ ├── view/
│ └── registration.php
registration.php
ফাইল তৈরি করাMagento 2.x এ মডিউল রেজিস্ট্রেশন করার জন্য একটি registration.php
ফাইল তৈরি করতে হয়, যা Magento কে জানান দেয় যে আপনার মডিউল রয়েছে।
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_ModuleName',
__DIR__
);
এখানে Vendor_ModuleName
এর মাধ্যমে আপনার মডিউলের নাম উল্লেখ করতে হবে।
module.xml
ফাইল তৈরি করাএখন আপনাকে মডিউলের কনফিগারেশন ফাইল module.xml
তৈরি করতে হবে, যা Magento কে মডিউলের তথ্য দেয়।
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_ModuleName" setup_version="1.0.0"/>
</config>
Magento মডিউলে কন্ট্রোলার একটি গুরুত্বপূর্ণ উপাদান, যা HTTP রিকোয়েস্ট প্রক্রিয়াজাত করে এবং রেসপন্স পাঠায়। আপনি কন্ট্রোলার তৈরি করতে পারেন, যা ইউজার ইন্টারফেসের সাথে যোগাযোগ করে।
এখানে একটি কন্ট্রোলার ক্লাসের উদাহরণ দেওয়া হল:
<?php
namespace Vendor\ModuleName\Controller\Index;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
class Index extends Action
{
public function execute()
{
// কোডের লজিক এখানে থাকবে
echo "Hello, Magento Module!";
}
}
এই কন্ট্রোলারটি Vendor/ModuleName
মডিউলের অংশ হবে, এবং URL এর মাধ্যমে আপনি এটি অ্যাক্সেস করতে পারবেন।
Magento মডেলে ডাটাবেসের সাথে সম্পর্কিত সমস্ত কার্যক্রম পরিচালনা করা হয়। একটি মডেল ক্লাস তৈরি করুন যা ডাটাবেসের রেকর্ডকে পরিচালনা করবে। উদাহরণস্বরূপ:
<?php
namespace Vendor\ModuleName\Model;
use Magento\Framework\Model\AbstractModel;
class Example extends AbstractModel
{
protected $_idFieldName = 'id'; // Primary key
protected $_idFieldName = 'example_table'; // Table Name
}
Magento মডিউল ডেভেলপমেন্টে, আপনি HTML এবং PHP কোডের মিশ্রণ ব্যবহার করে টেমপ্লেট ফাইল তৈরি করবেন। view/frontend/templates
ডিরেক্টরিতে .phtml
ফাইল তৈরি করতে পারেন।
<!-- app/code/Vendor/ModuleName/view/frontend/templates/example.phtml -->
<h1>Hello, this is your custom Magento Module!</h1>
এটি কন্ট্রোলার ক্লাসের মাধ্যমে লোড করা হবে এবং গ্রাহককে প্রদর্শিত হবে।
মডিউল তৈরি এবং কনফিগার করার পরে, আপনাকে Magento-তে মডিউলটি সক্রিয় করতে হবে। এটি করার জন্য, টার্মিনালে নিচের কমান্ডটি ব্যবহার করুন:
bin/magento module:enable Vendor_ModuleName
bin/magento setup:upgrade
মডিউল সফলভাবে সক্রিয় হলে, আপনি আপনার মডিউলকে URL এর মাধ্যমে দেখতে পারবেন:
http://your-magento-site.com/vendor_modulename/index/index
এটি আপনার কন্ট্রোলার Index
অ্যাকশনটিকে ট্রিগার করবে।
Magento মডিউল ডেভেলপমেন্ট একটি শক্তিশালী প্রক্রিয়া, যা আপনাকে ই-কমার্স সাইটে নতুন কার্যকারিতা যোগ করার সুযোগ দেয়। Magento মডিউল তৈরি করার মাধ্যমে আপনি নির্দিষ্ট কার্যকরী ফিচার তৈরি করতে পারেন, যেমন পেমেন্ট গেটওয়ে, কাস্টম ফর্ম, কাস্টম রিপোর্টিং টুলস, ইত্যাদি। এই প্রক্রিয়াটি সহজ এবং স্ট্রাকচারাল, যা ব্যবসায়ীদের তাদের সাইটে নতুন ফিচার এবং কাস্টম কার্যক্রম ইনক্লুড করার সুযোগ প্রদান করে।
ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) একটি শক্তিশালী মডুলার আর্কিটেকচার অনুসরণ করে, যা ব্যবসায়ীদের জন্য অত্যন্ত কাস্টমাইজেবল এবং স্কেলেবল সলিউশন প্রদান করে। ম্যাজেন্টো তার মডিউল আর্কিটেকচারের মাধ্যমে বিভিন্ন ফিচার এবং কার্যকারিতা একে অপরের সাথে যুক্ত করার জন্য একটি পরিষ্কার এবং সংগঠিত কাঠামো প্রদান করে। এটি বিভিন্ন কম্পোনেন্টের মাধ্যমে কাজ করে, যেখানে প্রতিটি কম্পোনেন্ট একটি নির্দিষ্ট কাজ সম্পাদন করে। এর মাধ্যমে, Magento একটি অত্যন্ত ফ্লেক্সিবল এবং মডুলার প্ল্যাটফর্ম হিসেবে কাজ করে।
Magento ফ্রেমওয়ার্কে মডিউল হল একটি স্বতন্ত্র ইউনিট যা সিস্টেমের একটি নির্দিষ্ট ফিচার বা কার্যকারিতা প্রদান করে। এটি সিস্টেমের কার্যকলাপ বা এক্সটেনশন যুক্ত করতে সাহায্য করে। Magento এর মডিউল আর্কিটেকচারের মূল বৈশিষ্ট্য হলো:
Magento এর মডিউল আর্কিটেকচার সিস্টেমের কার্যকলাপকে ছোট ইউনিটে বিভক্ত করে। প্রতিটি মডিউল একটি নির্দিষ্ট কার্যকারিতা প্রদান করে, যেমন পণ্য ব্যবস্থাপনা, অর্ডার ট্র্যাকিং, গ্রাহক ম্যানেজমেন্ট ইত্যাদি। Magento এ নতুন ফিচার যোগ করতে বা বিদ্যমান ফিচার পরিবর্তন করতে নতুন মডিউল তৈরি করা হয়।
Magento সিস্টেমে প্রতিটি মডিউলের জন্য একটি নির্দিষ্ট ডিরেক্টরি থাকে, যা সাধারণত app/code/<Vendor>/<ModuleName>
ফোল্ডারে অবস্থান করে। এখানে:
Magento মডিউল কনফিগারেশন ফাইলগুলির মাধ্যমে পরিচালিত হয়, যা XML ফরম্যাটে থাকে। এই কনফিগারেশন ফাইলগুলো মডিউলের জন্য প্রয়োজনীয় সেটিংস এবং অপশন নির্ধারণ করে। প্রধান কনফিগারেশন ফাইলগুলির মধ্যে রয়েছে:
Magento এর কম্পোনেন্ট আর্কিটেকচার একটি কাস্টমাইজেবল এবং শক্তিশালী পদ্ধতি, যা একাধিক কম্পোনেন্টের মধ্যে কাজ করে। এটি ডিপেন্ডেন্সি ইনজেকশন এবং হালকা-ওজন কম্পোনেন্ট ব্যবহার করে একটি মডুলার আর্কিটেকচার তৈরি করে। এখানে কয়েকটি প্রধান কম্পোনেন্টের কথা বলা হলো:
Magento এর কন্ট্রোলার কম্পোনেন্ট ইউজার ইন্টারঅ্যাকশন এবং পেজ রিকোয়েস্ট হ্যান্ডল করে। কন্ট্রোলার ক্লাসগুলি মূলত URL রাউটিং এবং রিকোয়েস্ট পরিচালনা করতে ব্যবহৃত হয়। যখন একটি ইউজার কোনো URL এ রিকোয়েস্ট পাঠায়, কন্ট্রোলার সেই রিকোয়েস্টটি প্রসেস করে এবং সঠিক অ্যাকশন/ভিউ প্রদর্শন করে।
app/code/<Vendor>/<Module>/Controller
Magento এর মডেল কম্পোনেন্ট ডেটা ম্যানিপুলেশন এবং সিস্টেমের ব্যবসায়িক লজিক প্রক্রিয়া করে। এটি ডাটাবেসের সাথে যোগাযোগ করে এবং ডেটা রিট্রিভ বা আপডেট করে। মডেল সাধারণত ডেটাবেসের রেকর্ডের জন্য কাজ করে।
app/code/<Vendor>/<Module>/Model
Magento এর ভিউ কম্পোনেন্ট ইউজারের জন্য ডেটা উপস্থাপন করে। এটি টেমপ্লেট ফাইল এবং ব্লক ক্লাসগুলির মাধ্যমে কন্ট্রোলার থেকে প্রাপ্ত ডেটা প্রদর্শন করে। ভিউ কম্পোনেন্ট ইউজার ইন্টারফেসের জন্য গুরুত্বপূর্ণ।
app/code/<Vendor>/<Module>/View
Magento ব্লক কম্পোনেন্ট ব্যবহারকারীর ভিউতে ডেটা প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি মডেল থেকে ডেটা নিয়ে আসে এবং টেমপ্লেটে প্রেরণ করে।
app/code/<Vendor>/<Module>/Block
Magento হেলপার কম্পোনেন্ট সাধারণত পুনঃব্যবহারযোগ্য ফাংশন সরবরাহ করে, যা মডিউল বা অ্যাপ্লিকেশন জুড়ে ব্যবহৃত হতে পারে। এগুলি সাধারণত ইউটিলিটি কাজের জন্য ব্যবহৃত হয়, যেমন স্ট্রিং ম্যানিপুলেশন, ফাইল সিস্টেম ইন্টারঅ্যাকশন ইত্যাদি।
app/code/<Vendor>/<Module>/Helper
Magento এর মডুলার আর্কিটেকচার এর মাধ্যমে আপনি পৃথক পৃথক ফিচার এবং ফাংশনালিটি একে অপর থেকে আলাদা রাখতে পারেন। এটি ফিচার যুক্ত করতে বা পরিবর্তন করতে সাহায্য করে এবং সিস্টেমের স্থিতিশীলতা বজায় রাখে।
মডিউল আর্কিটেকচারের মাধ্যমে কোড পুনঃব্যবহারযোগ্য হয়, যা ডেভেলপমেন্টের সময়সীমা কমায় এবং সিস্টেমের মেইনটেনেন্স সহজ করে।
মডিউল আর্কিটেকচার আপনাকে একটি মডিউল কাস্টমাইজ করতে বা নতুন মডিউল যোগ করতে সহায়ক, যা আপনার সিস্টেমের কার্যকারিতা বা ফিচার বাড়ানোর সুবিধা দেয়।
Magento এর মডিউল এবং কম্পোনেন্ট আর্কিটেকচার একটি শক্তিশালী এবং কাস্টমাইজযোগ্য ফ্রেমওয়ার্ক সরবরাহ করে যা ব্যবসায়ীদের তাদের ই-কমার্স সাইটে প্রয়োজনীয় কার্যকারিতা যুক্ত করতে এবং সিস্টেমটি স্কেল করতে সহায়ক। এর মডুলার ডিজাইন এবং বিভিন্ন কম্পোনেন্ট (Controller, Model, View, Block, Helper) এর মাধ্যমে Magento সিস্টেমটি অত্যন্ত কার্যকরী এবং সহজে কাস্টমাইজযোগ্য হয়ে থাকে।
ম্যাজেন্টো ফ্রেমওয়ার্কে (Magento Framework) মডিউল তৈরি করা এবং কনফিগার করা একটি অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া, যা আপনার ই-কমার্স সাইটের কার্যকারিতা এবং কাস্টম ফিচার যোগ করতে সাহায্য করে। মডিউলগুলি ম্যাজেন্টোর ফিচারগুলিকে বৃদ্ধি, কাস্টমাইজ এবং এক্সটেন্ড করার জন্য ব্যবহৃত হয়। এখানে আমরা ম্যাজেন্টোতে একটি কাস্টম মডিউল তৈরি এবং কনফিগার করার প্রক্রিয়া আলোচনা করব।
ম্যাজেন্টোতে মডিউল তৈরি করার জন্য প্রথমে আপনাকে মডিউলের জন্য একটি ডিরেক্টরি তৈরি করতে হবে এবং তার পরবর্তী ফাইলগুলোর মাধ্যমে মডিউল কনফিগার করতে হবে।
Magento-তে একটি নতুন মডিউল তৈরি করতে আপনাকে app/code/[VendorName]/[ModuleName]
ডিরেক্টরি তৈরি করতে হবে। এখানে [VendorName]
আপনার কোম্পানি বা ডেভেলপার নাম এবং [ModuleName]
আপনার মডিউলের নাম।
app/code/[VendorName]/[ModuleName]
উদাহরণস্বরূপ, একটি কাস্টম মডিউল তৈরি করতে:
app/code/Custom/HelloWorld
প্রথমে আপনাকে একটি module.xml
ফাইল তৈরি করতে হবে, যা ম্যাজেন্টোকে জানাবে যে এটি একটি বৈধ মডিউল। এই ফাইলটি app/code/[VendorName]/[ModuleName]/etc/
ডিরেক্টরিতে থাকবে।
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="[VendorName]_[ModuleName]" setup_version="1.0.0"/>
</config>
উদাহরণস্বরূপ, HelloWorld
মডিউলের জন্য module.xml
ফাইলটি হবে:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Custom_HelloWorld" setup_version="1.0.0"/>
</config>
Magento মডিউল রেজিস্টার করতে আপনাকে একটি registration.php
ফাইল তৈরি করতে হবে, যা Magento কে জানাবে যে মডিউলটি সিস্টেমে রেজিস্টার করা হয়েছে। এই ফাইলটি app/code/[VendorName]/[ModuleName]/
ডিরেক্টরিতে থাকবে।
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'[VendorName]_[ModuleName]',
__DIR__
);
উদাহরণস্বরূপ, HelloWorld
মডিউলের জন্য registration.php
হবে:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Custom_HelloWorld',
__DIR__
);
মডিউল তৈরি করার পর আপনাকে এটি সক্রিয় করতে হবে। এর জন্য নিচের কমান্ড ব্যবহার করুন:
php bin/magento module:enable Custom_HelloWorld
php bin/magento setup:upgrade
php bin/magento cache:flush
এখন আপনি আপনার মডিউলে নতুন ফিচার এবং কার্যকারিতা যোগ করতে পারেন। উদাহরণস্বরূপ, একটি কাস্টম কন্ট্রোলার তৈরি করা।
Magento মডিউলে কনফিগারেশন এবং সেটিংস যোগ করতে হলে আপনাকে কিছু কনফিগারেশন ফাইল তৈরি করতে হবে যা etc
ফোল্ডারে থাকবে। নিচে কিছু কনফিগারেশন ফাইলের উদাহরণ দেওয়া হলো।
আপনার মডিউলে কনফিগারেশন অপশনগুলির জন্য একটি system.xml
ফাইল তৈরি করুন। এই ফাইলটি অ্যাডমিন প্যানেলে কনফিগারেশন সেটিংস যোগ করতে সাহায্য করে। এটি app/code/[VendorName]/[ModuleName]/etc/adminhtml/
ডিরেক্টরিতে থাকবে।
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/system_file.xsd">
<system>
<section id="custom_helloworld" translate="label">
<label>Custom Hello World</label>
<tab>general</tab>
<resource>Magento_Config::config</resource>
<group id="general" translate="label">
<label>General Settings</label>
<field id="enabled" translate="label" type="select" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Enable</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
<default>1</default>
</field>
</group>
</section>
</system>
</config>
এই ফাইলটি আপনার মডিউলের কনফিগারেশন এবং কার্যকারিতা কন্ট্রোল করতে ব্যবহৃত হয়। এটি app/code/[VendorName]/[ModuleName]/etc/
ডিরেক্টরিতে থাকবে।
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/system_file.xsd">
<default>
<custom_helloworld>
<enabled>1</enabled>
</custom_helloworld>
</default>
</config>
আপনার তৈরি মডিউলটি ঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করতে:
php bin/magento
কমান্ডের মাধ্যমে মডিউলটি সক্রিয়/অকার্যকর করুন এবং সিস্টেমের ইনফরমেশন দেখুন।Magento-তে মডিউল তৈরি এবং কনফিগার করা একটি শক্তিশালী এবং কাস্টমাইজেবল প্রক্রিয়া যা আপনার সাইটের কার্যকারিতা বাড়াতে সাহায্য করে। আপনি module.xml
, registration.php
, system.xml
, এবং অন্যান্য কনফিগারেশন ফাইল ব্যবহার করে মডিউলটি তৈরি, কনফিগার এবং সক্রিয় করতে পারেন। এই প্রক্রিয়া অনুসরণ করে, আপনি Magento-এর ক্ষমতা আরও বৃদ্ধি করতে পারেন এবং আপনার ই-কমার্স সাইটে কাস্টম ফিচার এবং কার্যকারিতা যোগ করতে পারেন।
ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) একটি মডুলার আর্কিটেকচার ব্যবহার করে, যেখানে ফিচারগুলো ছোট, পুনঃব্যবহারযোগ্য এবং নির্দিষ্ট কাজ সম্পাদনের জন্য আলাদা মডিউল আকারে থাকে। Magento এর মডিউল আর্কিটেকচার এবং কম্পোনেন্টগুলি অত্যন্ত কাস্টমাইজযোগ্য এবং স্কেলেবল, যা আপনাকে প্রয়োজনীয় ফিচার এবং ফাংশনালিটি যোগ করার অনুমতি দেয়।
এখানে আমরা আলোচনা করব কিভাবে ম্যাজেন্টোতে একটি কাস্টম মডিউল তৈরি করতে হয়।
Magento 2 তে কাস্টম মডিউল তৈরি করার জন্য কয়েকটি নির্দিষ্ট ধাপ অনুসরণ করতে হয়। নিচে ধাপে ধাপে প্রক্রিয়াটি দেওয়া হলো:
প্রথমে, Magento 2 মডিউলের জন্য ডিরেক্টরি তৈরি করুন। Magento তে মডিউলগুলি সাধারণত app/code ডিরেক্টরিতে থাকে।
app/code/[VendorName]/[ModuleName]
এখানে, [VendorName] হলো আপনার কোম্পানি বা ডেভেলপারের নাম এবং [ModuleName] হলো মডিউলের নাম। উদাহরণস্বরূপ, যদি আপনি একটি মডিউল তৈরি করতে চান যার নাম "HelloWorld", তবে আপনি ডিরেক্টরি তৈরি করবেন:
app/code/YourVendor/HelloWorld
Magento 2 এ মডিউলকে সিস্টেমে রেজিস্টার করতে module.xml ফাইল তৈরি করতে হয়। এটি মডিউলের বেস কনফিগারেশন এবং ডিপেনডেন্সি নির্দেশ করে।
app/code/[VendorName]/[ModuleName]/etc/module.xml ফাইলটি তৈরি করুন এবং নিচের কোডটি যোগ করুন:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="[VendorName]_[ModuleName]" setup_version="1.0.0">
</module>
</config>
এখানে, [VendorName] এবং [ModuleName] আপনার কাস্টম নাম দিয়ে প্রতিস্থাপন করুন।
যদি আপনার মডিউলে ডাটাবেস টেবিল যুক্ত করতে চান, তাহলে আপনাকে একটি InstallSchema.php অথবা UpgradeSchema.php ফাইল তৈরি করতে হবে। এই ফাইলটি ডাটাবেস টেবিল তৈরি এবং আপগ্রেড করার জন্য ব্যবহৃত হয়।
app/code/[VendorName]/[ModuleName]/Setup/InstallSchema.php ফাইল তৈরি করুন এবং নিচের কোডটি ব্যবহার করুন:
<?php
namespace [VendorName]\[ModuleName]\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;
class InstallSchema implements InstallSchemaInterface
{
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
// টেবিল তৈরি করার কোড
if (!$installer->tableExists('your_table_name')) {
$table = $installer->getConnection()->newTable(
$installer->getTable('your_table_name')
)
->addColumn(
'entity_id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['identity' => true, 'nullable' => false, 'primary' => true, 'unsigned' => true],
'Entity ID'
)
->addColumn(
'name',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
255,
['nullable' => false],
'Name'
)
->setComment('Your Custom Table');
$installer->getConnection()->createTable($table);
}
$installer->endSetup();
}
}
Magento মডিউলে একটি Controller তৈরি করে ইউজার ইন্টারফেস থেকে ডাটা হ্যান্ডেল এবং প্রক্রিয়া করতে পারেন। এখানে একটি HelloWorldController.php উদাহরণ দেওয়া হলো:
app/code/[VendorName]/[ModuleName]/Controller/Index/Index.php ফাইল তৈরি করুন এবং নিচের কোডটি যোগ করুন:
<?php
namespace [VendorName]\[ModuleName]\Controller\Index;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
class Index extends Action
{
protected $resultPageFactory;
public function __construct(
Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
return $this->resultPageFactory->create();
}
}
এটি একটি পেজ রিটার্ন করবে যেটি আপনার মডিউলের ইনডেক্স অ্যাকশন থেকে তৈরি হবে।
Magento রাউটিং কনফিগারেশন XML ফাইলের মাধ্যমে মডিউল একশন এবং ইউআরএল ম্যানেজ করে। এই ফাইলটি app/code/[VendorName]/[ModuleName]/etc/frontend/routes.xml এ সংরক্ষণ করুন।
<?xml version="1.0" encoding="UTF-8"?>
<router id="standard">
<route id="[modulename]" frontName="hello">
<module name="[VendorName]_[ModuleName]"/>
</route>
</router>
এখানে [modulename] এবং [VendorName]_[ModuleName] আপনার কাস্টম নাম দিয়ে প্রতিস্থাপন করুন।
এটি সাইটে yourdomain.com/hello/index/index এ আপনার কাস্টম পেজ প্রদর্শন করবে।
Magento এ নতুন মডিউল সক্রিয় করতে আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:
php bin/magento module:enable [VendorName]_[ModuleName]
php bin/magento setup:upgrade
php bin/magento cache:flush
এখন আপনি আপনার মডিউল টেস্ট করতে পারবেন। ব্রাউজারে গিয়ে আপনার মডিউল পেজ পরীক্ষা করুন (যেমন, yourdomain.com/hello)। যদি সবকিছু সঠিকভাবে কাজ করে, তবে আপনার কাস্টম মডিউল সফলভাবে তৈরি হয়েছে।
Magento তে কাস্টম মডিউল তৈরি করার মাধ্যমে আপনি ই-কমার্স সাইটে নতুন ফিচার এবং ফাংশনালিটি যোগ করতে পারেন। এটি একটি অত্যন্ত কার্যকরী উপায় Magento এর শক্তিশালী কাস্টমাইজেশন এবং এক্সটেনশন সিস্টেম ব্যবহার করতে। মডিউল তৈরি করার প্রক্রিয়া বেশ সহজ এবং স্কেলেবল, এবং এটি Magento এর মডুলার আর্কিটেকচারের সুবিধা প্রদান করে।
ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) একটি মডুলার আর্কিটেকচার ব্যবহার করে, যার মাধ্যমে আপনি সহজেই নতুন ফিচার যোগ করতে পারেন। মডিউল আর্কিটেকচার আপনাকে থিম, কনফিগারেশন, ফাংশনালিটি এবং অন্যান্য মৌলিক কম্পোনেন্ট যোগ করার সুযোগ দেয়। Magento এর মডিউল ইনস্টল এবং একটিভেশন প্রক্রিয়া কিছুটা নির্দিষ্ট এবং স্পষ্ট ধাপে সম্পন্ন করা হয়।
এখানে Magento এর মডিউল ইনস্টলেশন এবং একটিভেশন পদ্ধতি বিস্তারিতভাবে আলোচনা করা হল।
ম্যাজেন্টোতে মডিউল ইনস্টল করার বেশ কয়েকটি পদ্ধতি রয়েছে। এর মধ্যে কমন পদ্ধতি হলো Composer ব্যবহার করে মডিউল ইনস্টল করা, ম্যানুয়ালি ফাইল আপলোড করা এবং ম্যাগেন্টো মডিউল রিপোজিটরি থেকে মডিউল ইনস্টল করা।
Composer ব্যবহার করে Magento-তে মডিউল ইনস্টল করা সবচেয়ে সহজ এবং জনপ্রিয় পদ্ধতি। যদি মডিউলটি Composer মাধ্যমে উপলব্ধ থাকে, তাহলে আপনি এটি কমান্ড লাইনের মাধ্যমে ইনস্টল করতে পারবেন।
উদাহরণ:
composer require vendor/module-name
এখানে vendor/module-name
হলো আপনার ইনস্টল করতে চাওয়া মডিউলের প্যাকেজ নাম।
যদি মডিউলটি কম্পোজার রেপোজিটরিতে উপলব্ধ না থাকে, তাহলে আপনি মডিউলটি ম্যানুয়ালি ডাউনলোড এবং ইনস্টল করতে পারেন।
ধাপসমূহ:
app/code/
ফোল্ডারে আপলোড করুন।app/code/
ফোল্ডারের মধ্যে মডিউলের একটি নতুন ফোল্ডার তৈরি করুন (যেমন: Vendor/ModuleName
) এবং মডিউলটির ফাইলগুলো সেখানে পেস্ট করুন।Magento Marketplace থেকে মডিউল কেনার পর, আপনি মডিউলের প্যাকেজ ডাউনলোড করতে পারেন এবং Composer ব্যবহার করে সেটি ইনস্টল করতে পারেন।
composer require vendor/module-name --no-update
composer update
মডিউল ইনস্টল করার পর, আপনাকে সেটি Magento সিস্টেমে একটিভেট করতে হবে। Magento এর মডিউল একটিভেট করতে কমান্ড লাইন ব্যবহার করা হয়।
ধাপসমূহ:
মডিউল তালিকা চেক করুন: মডিউল ইনস্টল করার পর, আপনাকে নিশ্চিত হতে হবে যে সেটি সঠিকভাবে ইনস্টল হয়েছে। এজন্য নিচের কমান্ডটি ব্যবহার করুন:
php bin/magento module:status
এই কমান্ডটি সমস্ত মডিউলের তালিকা দেখাবে এবং আপনি দেখতে পাবেন কোন মডিউলটি একটিভ এবং কোনটি ইনঅ্যাকটিভ।
মডিউল একটিভেশন: মডিউলটি একটিভ করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
php bin/magento module:enable Vendor_ModuleName
এখানে Vendor_ModuleName
হল আপনার মডিউলের নাম (যেমন: Magento_Catalog
বা Vendor_Module
ইত্যাদি)।
কনফিগারেশন ক্যাশ ফ্লাশ করুন: মডিউল একটিভেশন করার পর, Magento ক্যাশ ফ্লাশ করা জরুরি। এটি সিস্টেমের ক্যাশ সাফ করে এবং নতুন মডিউল লোড করতে সাহায্য করে।
ক্যাশ ফ্লাশ করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
php bin/magento cache:flush
ডাটাবেস আপডেট: যদি মডিউল ডাটাবেস টেবিলের পরিবর্তন বা স্কিমা আপডেট করে থাকে, তাহলে আপনাকে ডাটাবেস আপডেট করতে হবে। এজন্য নিচের কমান্ডটি ব্যবহার করুন:
php bin/magento setup:upgrade
স্ট্যাটিক ফাইল ডিপ্লয় (Optional): যদি মডিউলটি স্ট্যাটিক ফাইল (যেমন CSS, JS ফাইল) আপডেট করে থাকে, তবে স্ট্যাটিক ফাইল পুনরায় ডিপ্লয় করা দরকার। এর জন্য নিচের কমান্ডটি ব্যবহার করুন:
php bin/magento setup:static-content:deploy
যদি কোনো মডিউল নিষ্ক্রিয় করতে চান, তাহলে আপনি নিচের কমান্ডটি ব্যবহার করতে পারেন:
php bin/magento module:disable Vendor_ModuleName
এটি মডিউলটিকে নিষ্ক্রিয় করবে এবং আপনি যদি চান, তবে পরবর্তীতে এটি আবার একটিভ করতে পারবেন।
সবশেষে, মডিউল ইনস্টল এবং একটিভেশন সম্পন্ন হওয়ার পর, আপনাকে আপনার সাইটের ফ্রন্টএন্ডে গিয়ে নিশ্চিত হতে হবে যে মডিউলটি সঠিকভাবে কাজ করছে। এছাড়া, অ্যাডমিন প্যানেলে নতুন মডিউল সম্পর্কিত কনফিগারেশন সেটিংস চেক করুন।
Magento মডিউল ইনস্টলেশন এবং একটিভেশন একটি সহজ প্রক্রিয়া, তবে এটি সঠিকভাবে কাজ করার জন্য কিছু নির্দিষ্ট ধাপ অনুসরণ করা প্রয়োজন। Composer এর মাধ্যমে মডিউল ইনস্টল করা, মডিউল একটিভেট করা, ক্যাশ ফ্লাশ করা এবং ডাটাবেস আপডেট করা নিশ্চিত করবে যে মডিউলটি সঠিকভাবে আপনার সাইটে কাজ করছে।
Read more